home *** CD-ROM | disk | FTP | other *** search
- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- ScktComp, StdCtrls;
-
- type
- TForm1 = class(TForm)
- ServerSocket1: TServerSocket;
- Memo1: TMemo;
- procedure ServerSocket1Accept(Sender: TObject;
- Socket: TCustomWinSocket);
- procedure ServerSocket1ClientConnect(Sender: TObject;
- Socket: TCustomWinSocket);
- procedure ServerSocket1ClientDisconnect(Sender: TObject;
- Socket: TCustomWinSocket);
- procedure ServerSocket1ClientRead(Sender: TObject;
- Socket: TCustomWinSocket);
- procedure ServerSocket1ClientWrite(Sender: TObject;
- Socket: TCustomWinSocket);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
- {$R *.DFM}
- uses
- IniMod;
-
- procedure TForm1.ServerSocket1Accept(Sender: TObject;
- Socket: TCustomWinSocket);
- begin
- Memo1.Lines.Add('Client accepted');
- end;
-
- procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
- Socket: TCustomWinSocket);
- begin
- Memo1.Lines.Add('Client connected');
- end;
-
- procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
- Socket: TCustomWinSocket);
- begin
- Memo1.Lines.Add('Client disconnected');
- end;
-
- procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
- Socket: TCustomWinSocket);
- const
- Sep = ';';
- var
- i: Integer;
- Str: String;
- Lines: TStringList;
- User,Password: ShortString;
- begin
- Memo1.Lines.Add('Client read');
- Str := Socket.ReceiveText;
- { Hier wordt de tekst ontvangen als string.
- Het protocol moet worden ontrafeld en ini file verwerkt etc. }
- Lines := TStringList.Create;
- try
- Memo1.Lines.Add(Str);
- if Pos('PUT',Str) = 1 then { PUT }
- begin
- Delete(Str,1,4);
- User := Copy(Str,1,Pos(Sep,Str)-1);
- Delete(Str,1,Pos(Sep,Str));
- Password := Copy(Str,1,Pos(Sep,Str)-1);
- Delete(Str,1,Pos(Sep,Str));
- Lines.Text := Str;
- try
- IniMod.SetLines(User,Password,Lines);
- Lines.Text := 'OK'
- except
- on E:Exception do
- Lines.Text := E.Message
- end
- end
- else
- begin
- Delete(Str,1,4);
- User := Copy(Str,1,Pos(Sep,Str)-1);
- Delete(Str,1,Pos(Sep,Str));
- Password := Str; { strip CR/LF ?? }
- Str := ''; { no notes }
- try
- IniMod.GetLines(User,Password,Lines)
- except
- on E:Exception do
- Lines.Text := E.Message
- end
- end; { GET }
- { Hier versturen we de tekst, afsluiten met END_OF_TRANSMISSION }
- for i:=0 to Pred(Lines.Count) do
- Socket.SendText(Lines[i] + #13#10);
- Socket.SendText('END_OF_TRANSMISSION' + #13#10);
- finally
- Lines.Free
- end
- end;
-
- procedure TForm1.ServerSocket1ClientWrite(Sender: TObject;
- Socket: TCustomWinSocket);
- begin
- Memo1.Lines.Add('Client write');
- //Memo1.Lines.Add(Socket.ReceiveText);
- //Socket.SendText('HALLO' + #13#10);
- end;
-
- end.
-